// \u4e00-\u9fa5] 中文验证规则

import WxValidat from "wechat-validate";

Page({
  data: {
    idcardFrontUrl: "", // 身份证正面
    idcardBackUrl: "", // 身份证反面
    point: "",
    building: "",
    room: "",
    name: "",
    gender: "1",
    mobile: "",
  },
  rules: {
    name: [
      { required: true, message: "业主姓名不能为空!" },
      { pattern: /^[\u4e00-\u9fa5]{2,5}$/, message: "业主姓名只能为中文!" },
    ],
    mobile: [
      { required: true, message: "业主手机号不能为空!" },
      { pattern: /^1[3-8]\d{9}$/, message: "请填写正确的手机号!" },
    ],
    idcardFrontUrl: [{ required: true, message: "请上传身份证国徽面!" }],
    idcardBackUrl: [{ required: true, message: "请上传身份证照片面!" }],
  },
  behaviors: [WxValidat],
  async goList() {
    // 表单的校验
    if (!this.validate()) return;
    // 当前表单的数据提交接口
    // 编辑和新增是同时支持的，后端怎么知道我们是需要编辑页面
    console.log(this.data);
    const { __webviewId__, status, ...postData } = this.data;
    const { code } = await wx.http.post("/room", postData);
    if (code !== 10000) return wx.utils.toast("修改失败");
    wx.utils.toast("修改成功");
    // 跳转到列表页面
    // reLaunch
    wx.reLaunch({
      url: "/house_pkg/pages/list/index",
    });
  },
  removePicture(ev) {
    // 移除图片的类型（身份证正面或反面）
    const type = ev.mark?.type;
    this.setData({ [type]: "" });
  },
  // 点击编辑跳转过来的时候，携带的参数是id
  onLoad({ point, building, room, id }) {
    // 获取房屋详情做回显
    if (id) {
      this.getDetail(id);
      return;
    }
    // 新增房屋的时候的参数
    this.setData({
      point,
      room,
      building,
    });
  },
  async uploadImg(ev) {
    const type = ev.mark.type; // 获取点击的按钮的类型[这个标识和data里面数据字段的key一致]
    // 打开相册或者拍照
    const media = await wx.chooseMedia({
      count: 1, // 可以选择的数量
      mediaType: ["image"], // 表示选择的文件类型
      sizeType: ["compressed"], // 表示是否压缩
    });
    // 上传到服务器
    console.log(media);
    wx.uploadFile({
      filePath: media.tempFiles[0].tempFilePath,
      name: "file",
      url: wx.http.baseURL + "/upload", // 接口地址
      header: {
        Authorization: "Bearer " + getApp().token, // 请求的时候需要的token
      },
      success: (res) => {
        const {
          code,
          data: { url },
        } = JSON.parse(res.data);
        if (code !== 10000) return wx.utils.toast("上传失败");
        console.log(url); // 当前图片的url地址
        this.setData({
          // 变量
          [type]: url,
        });
      },
    });
  },
  async getDetail(id) {
    const { code, data } = await wx.http.get(`/room/${id}`);
    if (code !== 10000) return wx.utils.toast();
    this.setData({
      ...data,
    });
  },
});
